package com.ag.utils.param;

import javax.servlet.http.HttpServletRequest;

import com.ag.utils.param.verify.NumberBetweenVerifyAndConvertValue;

/**
 * 
 * @title IntParamUtils.java
 *
 * @author Andy
 * @email spring.h@aliyun.com
 * @version 1.0
 * @created 2017年4月18日 上午10:22:28
 */
public class IntParamUtils {
	
	/**
	 * 获取request中请求参数
	 * @param paramName
	 * @param request
	 * @return
	 * @created 2017年4月18日 上午9:49:42
	 */
	public static Integer getValue(String paramName, HttpServletRequest request) {
		return ParamUtils.getValue(paramName, paramName, null, request, ParamUtils.REQUEST_GETVALUE, ParamUtils.STRING_NOT_EMPTY_VERIFY_AND_CONVERT_VALUE, ParamUtils.INT_VERIFY_AND_CONVERT_VALUE);
	}
	
	/**
	 * 获取request中请求参数,并且验证值长度区间
	 * @param paramName
	 * @param min
	 * @param max
	 * @param request
	 * @return
	 * @created 2017年4月18日 上午10:08:10
	 */
	public static Integer getValueWithSize(String paramName, int min, int max, HttpServletRequest request) {
		return ParamUtils.getValue(paramName, paramName, null, request, ParamUtils.REQUEST_GETVALUE, ParamUtils.STRING_NOT_EMPTY_VERIFY_AND_CONVERT_VALUE, ParamUtils.INT_VERIFY_AND_CONVERT_VALUE, new NumberBetweenVerifyAndConvertValue(min, max));
	}
	
	/**
	 * 获取request中请求参数,并且验证值长度区间
	 * @param paramName
	 * @param min
	 * @param max
	 * @param request
	 * @return
	 * @created 2017年4月18日 上午10:08:10
	 */
	public static Integer getValueWithSize(String paramName, String viewName, int min, int max, HttpServletRequest request) {
		return ParamUtils.getValue(paramName, viewName, null, request, ParamUtils.REQUEST_GETVALUE, ParamUtils.STRING_NOT_EMPTY_VERIFY_AND_CONVERT_VALUE, ParamUtils.INT_VERIFY_AND_CONVERT_VALUE, new NumberBetweenVerifyAndConvertValue(min, max));
	}

	/**
	 * 获取request中请求参数,为空则设为默认值
	 * @param paramName
	 * @param defaultVal
	 * @param request
	 * @return
	 * @created 2017年4月18日 上午10:08:35
	 */
	public static Integer getValueWithDefault(String paramName, Integer defaultVal, HttpServletRequest request) {
		return ParamUtils.getValue(paramName, paramName, defaultVal, request, ParamUtils.REQUEST_GETVALUE, ParamUtils.STRING_NOT_EMPTY_VERIFY_AND_CONVERT_VALUE, ParamUtils.INT_VERIFY_AND_CONVERT_VALUE);
	}
	
	/**
	 * 获取request中请求参数,为空则设为默认值,并且验证值长度区间
	 * @param paramName
	 * @param defaultVal
	 * @param min
	 * @param max
	 * @param request
	 * @return
	 * @created 2017年4月18日 上午10:09:21
	 */
	public static Integer getValueWithDefaultSize(String paramName, Integer defaultVal, int min, int max, HttpServletRequest request) {
		return ParamUtils.getValue(paramName, paramName, defaultVal, request, ParamUtils.REQUEST_GETVALUE, ParamUtils.STRING_NOT_EMPTY_VERIFY_AND_CONVERT_VALUE, ParamUtils.INT_VERIFY_AND_CONVERT_VALUE, new NumberBetweenVerifyAndConvertValue(min, max));
	}
	
	public static Integer getValueWithDefaultSize(String paramName,String viewName, Integer defaultVal, int min, int max, HttpServletRequest request) {
		return ParamUtils.getValue(paramName, viewName, defaultVal, request, ParamUtils.REQUEST_GETVALUE, ParamUtils.STRING_NOT_EMPTY_VERIFY_AND_CONVERT_VALUE, ParamUtils.INT_VERIFY_AND_CONVERT_VALUE, new NumberBetweenVerifyAndConvertValue(min, max));
	}
}